CSS Hack 是一种编程技巧,它的作用是让 CSS 代码能兼容各个浏览器,尽量让页面取得想要的效果,避免出现错误的布局。不同厂商的浏览器(例如 Chrome 、 Firefox 等)或相同厂商不同版本的浏览器(例如 IE6 、 IE7 等)对 CSS 的解析能力有差异,并且各自还会存在特有的 BUG , CSS Hack 就会利用这些特点来执行或忽略相应地 CSS 样式。虽然 CSS Hack 能提升兼容性,但还是尽量少用,这是因为每次都要多写几段额外的兼容样式,这会带来巨大的维护成本,并且在浏览器升级后,浏览器支持了更多的 CSS 特性或修正了 BUG ,原先的写法可能就会失效。众所周知, IE 浏览器一向特立独行,很多 CSS Hack 的出现,就是为了填补 IE 中的坑。下面的所有 CSS Hack 默认都运行在标准渲染模式中。
浏览器 | 系统前缀 |
---|---|
Android | -webkit - |
Chrome | -webkit - |
Firefox | -moz - |
Internet Explorer / Microsoft Edge( 现在这货跟谷歌了 ) | -ms - |
iOS | -webkit - |
Opera | -o - |
Safari | -webkit - |
条件注释是 IE 浏览器的私有语法,存在于 HTML 文档中,可以指定某个版本的 IE ,解析对应的内容,语法如下。有一点需要注意, IE10 之后已经把条件注释移除了。